Generally described, indices can be used to provide quick reference to a larger body of information. For example, an index of subject matter keywords within a book may be created to refer a reader to the location of particular subject matter within the book. In another example, an index of song titles or artists keywords can be used to refer someone to various available media. As applied to computing devices and communication networks, computer-based indices can be utilized in similar manner in which each element in an index displays information to the user. In a more complex embodiment, computer-based indices can also be utilized to provide users with additional information/functionality corresponding to the keyword element. With reference to the previous examples, a computer-based book index may provide display information identifying particular pages in a physical book in which subject matter can be found. In a more complex embodiment, the computer-based book index can allow a user to electronically access the particular portion of the book referenced by an index element. Similarly, a computer-based index of song titles/artists may display information regarding available titles/artists in a media library. In a more complex embodiment, the computer-based index of song titles/artists may allow a user to access the media referenced by each index element.
In the simplest embodiment, index elements can be ordered alphabetically by the first term of each keyword element in the index. This is generally referred to as “straight index.” Straight indices can be useful for indices in which the user will know the first term of the desired keyword index element. For example, straight indices can be useful for book indices, such as textbook indices, in which subject matter can be organized by known keywords. However, straight indices can become cumbersome and inefficient for elements that correspond to more than one term or in which the first term of a multiple term keyword is not known. For example, in a straight index of song titles, the keyword element for the song “I'm Going to Kansas City” would only be referenced by the term first term, “I'm.” If a user does not necessarily know the first word of a song title (e.g., the user knows that the title includes the term “Kansas City”, but doesn't know the full title), the user would have a difficult time identifying the desired index element in a straight index embodiment.
The utilization of permuted indices has addressed some of the deficiencies associated with straight indices. Generally described, permuted indices are ordered indices in which each significant term (e.g., excluding simple terms) in a keyword index element can be searched. With reference to the previous example, in a permuted index, an index element for the song title “I'm Going to Kansas City” could be referenced by the terms “I'm,” “Going,” “Kansas,” and “City.” A user could easily locate the keyword index element by searching for the term “Kansas City.” Accordingly, permuted indices facilitate index element identification without requiring either full knowledge of the keyword element.
In both straight indices and permuted indices embodiments, as the number of index elements increases, computer-based indices typically cannot show every potential index element that satisfies search criteria. Typically, the computer-based index selects a subset of index elements satisfying the search criteria. For example, the computer-based index may display every Nth element satisfying the search criteria. A user can continue to enter additional search criteria that will likely narrow the number of elements that satisfy the search criteria. If the number of elements satisfying the search criteria is still too large to display, the computer-based index will again display some subset of the elements satisfying the search criteria. The process can continue until the computer-based index can display all possible index elements that satisfy search criteria or a user selects an index element.
As users go through multiple searching iterations, it can become difficult for the user to recognize various properties of the index. In one aspect, a user may not have an idea of the current location of the displayed index elements relative to the entire index. In some embodiments, locating the desired keyword index element can be facilitated with knowledge as to how the displayed elements correspond to all the elements that satisfy the search criteria. Additionally, the user may wish to visualize the relationship of the displayed index elements to each other. In another aspect, a user may not have a reference as to how many successive search iterations have been conducted. In some embodiments, monitoring the number of search iterations and/or navigation between different search levels can further facilitate identifying index elements of interest.